[Update] วิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้จะมาแนะนำเกี่ยวกับวิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync
สิ่งที่ต้องมี
CData Sync และ RDS
※มี CData Sync และ RDS (MySQL) ที่เชื่อมต่อเข้าด้วยกันแล้ว
ดูวิธีการได้ที่ลิงก์ด้านล่างนี้
เตรียมไฟล์ Google Sheet ใน Google Drive
ต่อไปให้เตรียมไฟล์ Google Sheet ใน Google Drive โดยการสร้างข้อมูลจำลองอะไรก็ได้ลงใน Google Sheet เช่น ในตัวอย่างนี้เป็นการจำลองข้อมูลเกี่ยวกับราคาตามขนาดสินค้า
item_name | size | price |
---|---|---|
AAA01 | S | 200 |
AAA02 | M | 300 |
AAA03 | L | 400 |
AAA04 | M | 300 |
AAA05 | X | 500 |
※หมายเหตุ : ควรอ่านข้อมูลในหัวข้อ สิ่งที่ต้องมี อย่างละเอียด รวมถึงบทความอื่นๆ ที่เกี่ยวข้อง เพื่อไม่ให้เกิดความผิดพลาดระหว่างการดำเนินการครับ
เพิ่ม Google Sheet ใน CData Sync
เลือก Connections
จากเมนูด้านซ้าย และคลิก + Add Connection
ป้อน Google Sheet
ในช่องค้นหา แล้วปิดใช้งาน Only Installed
ก็จะแสดง Google Sheet ขึ้นมา
จากนั้นคลิกไอคอนดาวน์โหลด (Install Connector) แล้วเลือก Download Connector
แล้วรอ Installing...
สักครู่
เมื่อติดตั้งเสร็จแล้ว คลิก Google Sheet
ไปที่หน้าจอ Google Drive ที่เก็บ Google Sheet แล้วคัดลอกชื่อ Spreadsheet (ไฟล์ Google Sheet) และ Folder Id ของเราตามนี้
กลับมาที่หน้าจอ CData Sync แล้วจะตั้งค่าดังนี้
・Connection Name *: GoogleSheet1
(ป้อนตามต้องการ)
・Auth Scheme *: OAuth
・Spreadsheet: demo_order
(ป้อนชื่อ Spreadsheet ที่คัดลอกมาจากขั้นตอนที่แล้ว)
・Folder Name: ป้อน Folder Id ที่คัดลอกจากขั้นตอนที่แล้ว
・คลิก Connect to Google Sheets
เลือก Email ที่ใช้เก็บไฟล์ Google Sheet
แล้วจะกลับมาหน้าจอ New Connection ของ CData GoogleSheet นี้โดยอัตโนมัติ
หากแสดงแจ้งเตือน "✅Success! Please click the Save & Test button to save." แบบนี้ ถือว่าการเชื่อมต่อจาก CData ไปยัง Google Sheet สำเร็จ
ต่อไปคลิก Save & Test
แล้วจะแสดงแจ้งเตือน "✅Connection created successfully" ด้านขวาบน ก็ถือว่าเราเพิ่มการเชื่อมต่อ CData GoogleSheet เรียบร้อยแล้ว และภายใน Google Sheet จะแสดงหน้าจอแบบนี้ครับ
ต่อไปเลือก Connections
จากแท็บด้านซ้าย จะเห็นว่าการเชื่อมต่อ Google Sheet นี้ถูกบันทึกใน Connection นี้เรียบร้อยแล้วครับ
เพิ่ม Job สำหรับ Google Sheet และ RDS
การเพิ่ม Job ใน CData Sync เป็นการสร้างงานซิงโครไนซ์เพื่อทำการโอนย้ายข้อมูลระหว่างแหล่งข้อมูลต้นทางและปลายทางตามที่เรากำหนด โดยครั้งนี้จะกำหนดต้นทางเป็น Google Sheet
และปลายทางเป็น RDS
เลือก Jobs
จากแท็บด้านซ้าย แล้วคลิก + Add Job
แล้วจะตั้งค่าดังนี้
・ป้อน Name *: gsheet_to_rds
(ป้อนชื่อตามต้องการ)
・Source *: GoogleSheet1
(เลือกต้นทางเป็น Google Sheet)
・Destination *: tinnakorn_cdata_rds
(เลือกปลายทางเป็น RDS)
・Type: Standard
・คลิก Add Job
เมื่อเพิ่ม Job เสร็จแล้วจะแสดงหน้าจอแบบนี้
เพิ่ม Task ใน Job
ก่อนที่จะไปเพิ่ม Task อยากให้ตรวจสอบที่หน้าจอ Google Sheet ใน Google Drive ของเราก่อนครับ
เปิดไฟล์ Google Sheet ของเรา แล้วสังเกต "ชื่อไฟล์ด้านบน" และ "แท็บชื่อ Sheet1 ด้านล่าง" ตามรูปภาพ
ความหมายของลูกศรนี้คือ ในขณะที่เราทำการ Add Task ชื่อของ Google Sheet จะแสดงตามลูกศรดังนี้
demo_order + Sheet1 => demo_order_Sheet1
กลับมาที่หน้าจอ Job ใน CData Sync อีกครั้ง แล้วเลือกแท็บ Task
แล้วคลิก + Add Tasks
ติ๊ก ✅
demo_order_Sheet1 ที่เป็น Table Name ของเรา และคลิก Add Tasks
เมื่อเพิ่ม Task เสร็จแล้วจะแสดงหน้าจอแบบนี้
Run Task
ติ๊ก ✅
Table Name ที่เพิ่มเข้ามา แล้วคลิก Run
เพื่อให้ข้อมูลอัปเดตไปยัง RDS แล้วรอสักครู่
เมื่อ Run เสร็จแล้ว จะแสดง Successful
ใน LAST RUN แบบนี้
ตรวจสอบข้อมูล Database ใน RDS
เราจะตรวจสอบข้อมูล Database ใน RDS ที่ใช้เป็นแหล่งข้อมูลปลายทาง ว่าหลังจากที่ Run Task ใน CData Sync ไปแล้ว จะมีข้อมูล Spreadsheet เข้ามาใน RDS หรือไม่
เข้ามาที่หน้าจอ Terminal ที่ Login Server EC2 Instance ไว้ แล้วเชื่อมต่อเข้าไปยัง Database ใน RDS ผ่าน Server EC2 Instance ด้วยคำสั่งด้านล่างนี้ (ดูข้อมูลเพิ่มเติมได้ที่วิธีเชื่อมต่อไปยัง RDS (MySQL) ใน Ubuntu)
mariadb -h [RDS Endpoint] -u [Master username RDS] -p[Master password RDS]
ต่อไปรันคำสั่งเรียกดูรายการ Database ที่มีอยู่
show databases;
root@ip-xx-xx-xx-xx:~
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| tinnakorn |
+--------------------+
5 rows in set (0.006 sec)
MySQL [(none)]>
ต่อไปรันคำสั่งเรียกใช้ Database ที่ใช้เป็นแหล่งข้อมูลปลายทางเพื่อรับข้อมูลจากการ Run Task ใน CData Sync
use tinnakorn;
root@ip-xx-xx-xx-xx:~
MySQL [(none)]> use tinnakorn;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [tinnakorn]>
ต่อไปรันคำสั่งตรวจสอบ Table
show tables;
root@ip-xx-xx-xx-xx:~
MySQL [tinnakorn]> show tables;
+---------------------+
| Tables_in_tinnakorn |
+---------------------+
| demo_order_Sheet1 |
+---------------------+
1 row in set (0.002 sec)
MySQL [tinnakorn]>
ต่อไปรันคำสั่งเรียกดูข้อมูลที่เราเพิ่มเข้ามาใน Database ด้วยการ Run Task ไปก่อนหน้า
select * from demo_order_Sheet1;
root@ip-xx-xx-xx-xx:~
MySQL [tinnakorn]> select * from demo_order_Sheet1;
+----+-----------+------+-------+
| id | item_name | size | price |
+----+-----------+------+-------+
| 2 | AAA01 | S | 200 |
| 3 | AAA02 | M | 300 |
| 4 | AAA03 | L | 400 |
| 5 | AAA04 | M | 300 |
| 6 | AAA05 | X | 500 |
+----+-----------+------+-------+
5 rows in set (0.001 sec)
MySQL [tinnakorn]>
เมื่อย้อนกลับไปดู Spreadsheet ใน Google Drive จะเห็นว่ามีข้อมูลตรงกับ Database ใน RDS ที่เรียกดูข้อมูลจากขั้นตอนที่แล้วครับ
สรุป
วิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync จะทำให้ง่ายต่อการจัดการ Database เช่น การดู การแก้ไข การสร้าง และการลบไฟล์ เป็นต้น ซึ่งอำนวยความสะดวกในการสร้างฐานข้อมูลต่างๆ ได้มาก เพราะว่าเราไม่ต้องรัน Code เพื่อสร้าง Database, Table และอื่นๆ ด้วยตัวเอง แต่เราสามารถดึงข้อมูลใน Google Sheet ที่เชื่อมต่อกับ CData Sync ไว้และนำมาแสดงผลหรือใช้งานผ่าน RDS (MySQL) ได้เลยครับ
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !